package com.bdyreptile.bdyreptile;

import org.apache.commons.lang.StringUtils;

import java.util.Comparator;
import java.util.regex.Pattern;

//对list中的包含数字的字符串进行排序
public class StringComparatorUtils implements Comparator<String>{

    @Override
    public int compare(String s1, String s2) {
        Integer n1 = getNumber(s1);
        Integer n2 = getNumber(s2);
        if(n1==-1||n2==-1){
            return s1.charAt(0)-s2.charAt(1);
        }
        return n1-n2;
    }
    //1.2.1获取字符串中的数字
    public Integer getNumber(String content){
        //正则表达式，用于匹配非数字串，+号用于匹配出多个非数字串
        String regEx="[^0-9]+";
        Pattern pattern = Pattern.compile(regEx);
        //用定义好的正则表达式拆分字符串，，把字符串中的数字留出来
        String[] arr = pattern.split(content);
        if(arr.length==0){return -1;}
        return Integer.parseInt(arr[1]);
    }
}